﻿Imports CAS.Web.Controls.GatewayPagtos.CobreDireto
Imports System.Xml

Public Class _Default
    Inherits System.Web.UI.Page

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        Dim objProdutos As New Produtos
        Dim objWS As New WsCobreDireto.BPagWSService
        Try
            VendaCobreDireto.UrlCampainha = String.Format("http://{0}/Campainha.aspx", Request.Url.Authority)
            VendaCobreDireto.UrlSucesso = String.Format("http://{0}/Sucesso.aspx", Request.Url.Authority)
            VendaCobreDireto.UrlErro = String.Format("http://{0}/Erro.aspx", Request.Url.Authority)

            With objProdutos
                .Codigo = "1"
                .Descricao = "Descrição do Produto"
                .Quantidade = "1"
                .ValorUnitario = "100"
            End With

            With VendaCobreDireto
                .Pedido = New Pedido
                With .Pedido
                    .Cliente = New Cliente
                    With .Cliente
                        .PrimeiroNome = "João"
                        .SegundoNome = "Pereira"
                        .UltimoNome = "Silva"
                        .Documento = "MG 00.000.000 SSPMG, 000.000.000-00"
                        .Email = "joaosilva@gmail.com"
                        .Cep = "00000000"
                        .DDD = "00"
                        .Telefone = "00000000"
                    End With
                    .Numero = "1"
                    .ValorFrete = "000"
                    .SubTotal = "100"
                    .Total = "100"
                    .Produtos.Add(objProdutos)
                End With
            End With


            Dim strXML As String = String.Empty

            With VendaCobreDireto
                strXML &= "<payOrder>"
                strXML &= "<order_data>"
                strXML &= String.Format("<merch_ref>{0}</merch_ref>", .Pedido.Numero)
                strXML &= String.Format("<tax_freight>{0}</tax_freight>", .Pedido.ValorFrete)
                strXML &= String.Format("<order_subtotal>{0}</order_subtotal>", .Pedido.SubTotal)
                strXML &= String.Format("<order_total>{0}</order_total>", .Pedido.Total)

                strXML &= "<order_items>"
                For Each lstProdutos As Produtos In .Pedido.Produtos
                    strXML &= "<order_item>"
                    strXML &= String.Format("<code>{0}</code>", lstProdutos.Codigo)
                    strXML &= String.Format("<description>{0}</description>", lstProdutos.Descricao)
                    strXML &= String.Format("<units>{0}</units>", lstProdutos.Quantidade)
                    strXML &= String.Format("<unit_value>{0}</unit_value>", lstProdutos.ValorUnitario)
                    strXML &= "</order_item>"
                Next
                strXML &= "</order_items>"
                strXML &= "</order_data>"
                strXML &= "<behavior_data>"
                strXML &= String.Format("<url_post_bell>{0}</url_post_bell>", .UrlCampainha)
                strXML &= String.Format("<url_redirect_success>{0}</url_redirect_success>", .UrlSucesso)
                strXML &= String.Format("<url_redirect_error>{0}</url_redirect_error>", .UrlErro)
                strXML &= "</behavior_data>"
                strXML &= "<customer_data>"
                strXML &= "<customer_info>"
                strXML &= String.Format("<first_name>{0}</first_name>", VendaCobreDireto.Pedido.Cliente.PrimeiroNome)
                strXML &= String.Format("<middle_name>{0}</middle_name>", VendaCobreDireto.Pedido.Cliente.SegundoNome)
                strXML &= String.Format("<last_name>{0}</last_name>", VendaCobreDireto.Pedido.Cliente.UltimoNome)
                strXML &= String.Format("<email>{0}</email>", VendaCobreDireto.Pedido.Cliente.Email)
                strXML &= String.Format("<document>{0}</document>", VendaCobreDireto.Pedido.Cliente.Documento)
                strXML &= "<phone_home>"
                strXML &= String.Format("<area_code>{0}</area_code>", VendaCobreDireto.Pedido.Cliente.DDD)
                strXML &= String.Format("<phone_number>{0}</phone_number>", VendaCobreDireto.Pedido.Cliente.Telefone)
                strXML &= "</phone_home>"
                strXML &= String.Format("<address_zip>{0}</address_zip>", VendaCobreDireto.Pedido.Cliente.Cep)
                strXML &= "</customer_info>"
                strXML &= "</customer_data>"

                strXML &= "</payOrder>"


                Dim strRetornoWS As String = String.Empty
                objWS.Url = "https://psp.cobredireto.com.br/bpag2Sandbox/services/BPagWS?wsdl"
                strRetornoWS = objWS.doService("1.1.0", "payOrder", "xsom98", "cleofas", "01xsom987", strXML)


                Dim dsRetorno As New DataSet


                Dim stream As New IO.StringReader(strRetornoWS)
                Dim objReader As New XmlTextReader(stream)

                dsRetorno.ReadXml(objReader)

                Response.Redirect(dsRetorno.Tables("bpag_data").Rows(0)("url"), False)

            End With





            '<customer_info>
            '   <first_name>Primeiro nome</first_name>
            '   <middle_name>Nome do meio</middle_name>
            '   <last_name>Último nome</last_name>
            '   <email>Email válido</email>
            '   <document>Documento, normalmente o CPF</document>
            '   <phone_home>
            '      <area_code>Código DDD</area_code>
            '      <phone_number>O telefone sem o hifen</phone_number>
            '   </phone_home>
            '   <address_zip>CEP sem o hifen</address_zip>
            '</customer_info>
            '<behavior_data>
            '   <url_post_bell>URL de retorno, para onde
            '      será enviada a campainha</url_post_bell>
            '   <url_redirect_success>URL em caso de sucesso,
            '      normalmente o recibo</url_redirect_success>
            '   <url_redirect_error>URL para o caso de algum erro
            '      durante a transação</url_redirect_error>
            '</behavior_data>

            '<order_data>
            '   <merch_ref>número do pedido</merch_ref>
            '   <tax_freight>Valor do frete</tax_freight>
            '   <order_subtotal>Subtotal do pedido</order_subtotal>
            '   <order_total>Total do pedido</order_total>
            '   <order_items>

            '      <!-- Os items do pedido, serão descritos aqui,
            '          separe cada item dentro de uma tag 'order_item' -->
            '      <order_item>
            '         <code>Código do item</code>
            '         <description>Descrição do item</description>
            '         <units>Quantidade do item</units>
            '         <unit_value>Valor unitário do item</unit_value>
            '      </order_item>
            '   </order_items>
            '</order_data>


            '<payOrder>
            '   <order_data>
            '      Informações do Pedido
            '   </order_data>
            '   <behavior_data>
            '      Configuração de URLs para retorno
            '   </behavior_data>
            '   <payment_data>
            '      Informações sobre o Pagamento
            '   </payment_data>
            '   <customer_data>
            '      Informações do Comprador
            '   </customer_data>
            '</payOrder>

        Catch objErro As Exception

        End Try
    End Sub

End Class